//
//  EGMBleDeviceSettingOperation.h
//  HBSDKPro
//
//  Created by LRB_C on 2020/8/17.
//  Copyright © 2020 林瑞彬. All rights reserved.
//

#import "EGMBleSportsOperation.h"
#import "BlePedoSetModel.h"
#import "BLeDeviceInfoModel.h"
#import "BleRemindSwitchSetInfoModel.h"
#import "BleClockAndTempSetModel.h"
#import "BleLongSitAndHrmBpSetModel.h"
#import "BleWeatherSetModel.h"

typedef void(^readPedoSetBlock)(BlePedoSetModel *model);
typedef void(^readReminderSwitchInfoSetBlock)(BleRemindSwitchSetInfoModel *model);
typedef void(^readClockAndTempSetBlock)(BleClockAndTempSetModel *model);
typedef void(^readLongSitAndHrmBpBlock)(BleLongSitAndHrmBpSetModel *model);


@interface EGMBleDeviceSettingOperation : EGMBleSportsOperation

//调用readBleSetDataModel后 设置回调block 监听结果
@property (nonatomic,copy) readPedoSetBlock readPedoSetBlock;//记步设置
@property (nonatomic,copy) readReminderSwitchInfoSetBlock remindSwitchBlock;//通知和提醒
@property (nonatomic,copy) readClockAndTempSetBlock clockTempSetBlock;//闹铃和温度
@property (nonatomic,copy) readLongSitAndHrmBpBlock longsitHrmbpSetBlock;//久坐提醒和心率血压报警设

/**
 (默认开启)
 打开获取设置信息开关
 */
-(void)enableBleSetInoNotify:(BOOL)isEnabled;

/**
 先打开 enableBleSetInoNotify:YES
 获取所有的设置信息 1-4个 个数不等
 block 回调  readPedoSetBlock， readReminderSwitchInfoSetBlock， readClockAndTempSetBlock ，readLongSitAndHrmBpBlock 分别监听不同的设置信息回调
 */

-(void)readBleSetDataModel;

/**
 同步记步设置信息到设备
 pedoSetInfo，传入BlePedoSetModel模型
 设置 性别 年龄 运动目标等等
 */
-(void)savePedoSetInfoWithModel:(BlePedoSetModel*)pedoSetInfo;

/**
 设置提醒时段和开关  微信 QQ 等手机app的提醒功能
 打开开关后 会在手环显示这些手机端app的提醒功能
 */
-(void)saveReminderSwitchSetInfoWithModel:(BleRemindSwitchSetInfoModel*)remiderSetInfo;

/**
 保存 闹钟 体温测量等设置
 */
-(void)saveCloakAndTempSetInfoWithModel:(BleClockAndTempSetModel*)clockSetInfo;

/**git 
 保存 久坐提醒 心率血压报警设置
 */
-(void)saveLongSitAndHrmBpReminSetInfoWithModel:(BleLongSitAndHrmBpSetModel*)setInfo;

/**
(默认开启)  开启massData notify 记步 睡眠 心率 血压 等获取 请先打开这个开关
 */
-(void)enableMassDataNotify:(BOOL)isEnabled;

/**
 下发指令进入固件升级模式
 */

-(void)writeCmdOfEnterDFU;

/**
 设置天气信息
 */
-(void)sendWeatherInfoCmdWithModel:(BleWeatherSetModel*)model;
@end

